package com.mdd.validate.agreement;

import lombok.Data;

/**
 * TODO
 * <p>
 * {@code @Description}
 * @Author 幻速
 * {@code @Date} 2023/10/31 14:24
 **/
@Data
public class AgreementUnsignInfo {
    /*
      "{" +
                      "  \"alipay_user_id\":\"2088101143488930\"," +
                      "  \"alipay_open_id\":\"074a1CcTG1LelxKe4xQC0zgNdId0nxi95b5lsNpazWYoCo5\"," +
                      "  \"alipay_logon_id\":\"abx@alitest.com\"," +
                      "  \"personal_product_code\":\"GENERAL_WITHHOLDING_P\"," +
                      "  \"sign_scene\":\"INDUSTRY|MEDICA\"," +
                      "  \"external_agreement_no\":\"test\"," +
                      "  \"agreement_no\":\"20170322450983769228\"," +
                      "  \"third_party_type\":\"PARTNER\"," +
                      "  \"extend_params\":\"{\\\"UNSIGN_ERROR_CODE\\\": \\\"USER_OWE_MONEY\\\",\\\"UNSIGN_ERROR_INFO\\\":\\\"10.00\\\"}\"," +
                      "  \"operate_type\":\"confirm\"" +
                      "}"
     */
    /**
     * String	三选一	32
     *     用户的支付宝账号对应的支付宝唯一用户号，以2088 开头的 16 位纯数字 组成; 本参数与alipay_logon_id 不可同时为空，若都填写，则以本参数为准，优先级高于alipay_logon_id。
     *     想了解openid？
     *             2088101143488930
     */
    private String alipay_user_id;
    /**
     * String	128
     *     请使用alipay_open_id，后续alipay_user_id将不支持新接入使用，存量已对接的也将逐步回收。用户openid简介用户的支付宝账号对应的支付宝唯一用户号， 本参数与alipay_logon_id 不可同时为空，若都填写，则以本参数为准，优先级高于alipay_logon_id。
     *             074a1CcTG1LelxKe4xQC0zgNdId0nxi95b5lsNpazWYoCo5
     */
    private String alipay_open_id;
    /**
     * String	100
     *     用户的支付宝登录账号，支持邮箱或手机号码格式。本参数与alipay_user_id 不可同时为空，若都填写，则以alipay_user_id 为准。
     *     abx@alitest.com
     */
    private String alipay_logon_id;
    /**
     * String	特殊可选	64
     *     协议产品码，商户和支付宝签约时确定，不同业务场景对应不同的签约产品码。
     *     GENERAL_WITHHOLDING_P
     */
    private String personal_product_code;
    /**
     * String	特殊可选	64
     *     签约协议场景，该值需要与系统/页面签约接口调用时传入的值保持一 致。如：周期扣款场景，需与调用 alipay.user.agreement.page.sign(支付宝个人协议页面签约接口) 签约时的 sign_scene 相同。 当传入商户签约号 external_agreement_no时，场景不能为空或默认值 DEFAULT|DEFAULT。
     *     INDUSTRY|MEDICA
     */
    private String sign_scene;
    /**
     * String	二选一	32
     *     代扣协议中标示用户的唯一签约号(确保在商户系统中 唯一)。 格式规则:支持大写小写字母和数字，最长 32 位。 注意：若调用 alipay.user.agreement.page.sign(支付宝个人协议页面签约接口) 签约时传入 external_agreement_no 则该值必填且需与签约接口传入值相同。
     *     test
     */
    private String external_agreement_no;
    /**
     * String	64
     *     支付宝系统中用以唯一标识用户签约记录的编号（用户签约成功后的协议号 ），如果传了该参数，其他参数会被忽略 。 本参数与 external_agreement_no 不可同时为空。
     *             20170322450983769228
     */
    private String agreement_no;
    /**
     * String	可选	32
     *     签约第三方主体类型。对于三方协议，表示当前用户和哪一类的第三方主体进行签约。
     *     枚举值
     *     平台商户: PARTNER
     *             注意事项
     *     默认为PARTNER
     *             PARTNER
     */
    private String third_party_type;
    /**
     * String	可选	512
     *     扩展参数
     *     {"UNSIGN_ERROR_CODE": "USER_OWE_MONEY","UNSIGN_ERROR_INFO":"10.00"}
     */
    private String extend_params;
    /**
     * String	可选	10
     *     注意：仅异步解约需传入，其余情况无需传递本参数。
     *     枚举值
     *     解约确认: confirm
     *     解约作废: invalid
     *             confirm
     */
    private String operate_type;
}
